iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Python

從Python入門到自製遊戲:30天鐵人挑戰之旅系列 第 22

設定遊戲內的顏色與元素屬性

  • 分享至 

  • xImage
  •  

今天來做遊戲物件屬性,球、擋板、磚塊及顏色。

# 設定顏色
white = (255, 255, 255)
black = (0, 0, 0)
light_blue = (173, 216, 230)
light_green = (144, 238, 144)

# 球的屬性
ball_radius = 10
ball_x = screen_width // 2
ball_y = screen_height // 2
ball_speed_x = 3 * random.choice((1, -1))
ball_speed_y = 3 * random.choice((1, -1))

# 擋板的屬性
paddle_width = 100
paddle_height = 10
paddle_x = (screen_width - paddle_width) // 2
paddle_y = screen_height - paddle_height - 30
paddle_speed = 10

# 磚塊屬性
brick_rows = 5
brick_columns = 8
brick_width = screen_width // brick_columns
brick_height = 30
  • 顏色設定
    首先,程式碼定義了幾種常見顏色,包括白色 (white)、黑色 (black)、淺藍色 (light_blue) 和淺綠色 (light_green)。在電腦中,顏色通常以 RGB 三原色 (紅、綠、藍) 的組合來表示,每個值的範圍為 0 到 255,但正紅正藍正綠不符合我審美,所以就用淺藍及淺綠了。舉例來說,white = (255, 255, 255) 代表了全紅、全綠、全藍混合而成的白色,而 black = (0, 0, 0) 則表示完全沒有顏色的黑色。背景我用白色,球體用黑色,而磚塊和擋板則可以分別用淺藍色與淺綠色來區別。

  • 球的屬性設定
    程式碼為遊戲中的球設定了多個屬性。ball_radius = 10 代表了球的半徑為 10 個像素,而 ball_x 和 ball_y 則是球的初始位置,分別設定在視窗寬度和高度的中間點。這樣的初始位置設計能確保球從畫面中央開始移動,更符合玩家的直覺。另外 ball_speed_x 和 ball_speed_y 則是球的水平與垂直速度,其中 random.choice((1, -1)) 會隨機選擇方向,讓遊戲在每次啟動時都有不同的變化性,增加了遊戲的挑戰性。

  • 擋板的屬性設定
    擋板是玩家可以控制的元素。paddle_width = 100 和 paddle_height = 10 分別設定了擋板的寬度與高度,這樣的大小設計有助於玩家在水平移動時更容易接住球。而 paddle_x 和 paddle_y 則是擋板的初始位置,位於視窗底部。paddle_speed = 10 則是擋板的移動速度,這個值越高,擋板移動得越快,有時可以增加遊戲的難度,讓玩家在操控時更具挑戰性。

  • 磚塊屬性設定
    程式碼中設定了磚塊的屬性,包括行數 (brick_rows = 5) 和列數 (brick_columns = 8),這樣可以建立一個 5 行 8 列的磚塊陣列。每個磚塊的寬度 (brick_width = screen_width // brick_columns) 則是由整個視窗的寬度平均分配給每列磚塊,這樣的設計能確保所有磚塊排列得井然有序且不會超出視窗範圍。此外,磚塊的高度設定為 30 個像素,這樣每行磚塊之間可以保持適當的間隔,方便球擊打時的判斷。

今天遊戲的進度一樣不錯,到目前還沒啥大問題。任何屬性的顏色能隨心情改變,下次來做點對比顏色,雖然感覺我自己的眼睛會先壞掉。

那今天就先這樣。/images/emoticon/emoticon29.gif


上一篇
遊戲設定與環境配置
下一篇
建立磚塊矩形陣列
系列文
從Python入門到自製遊戲:30天鐵人挑戰之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言